import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
import store from './store/store'
// @escook/request-miniprogram 网络请求
import { $http } from '@escook/request-miniprogram'
import uView from "uview-ui";
Vue.use(uView);
// 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http
// 请求的根路径
$http.baseUrl ='http://truck-mall-uat.stage.dev.saic-hongyan.com/'
// http://truck-mall-uat.stage.dev.saic-hongyan.com/
// 请求拦截器
$http.beforeRequest = function(options) {
	// 提示加载中
	uni.showLoading({
		title: "数据加载中..."
	})

	// 请求头添加token
	const token = uni.getStorageSync('token');
	if (!token) {
			// 存储当前请求的选项，用于登录后重新发起请求
			uni.setStorageSync('pendingRequest', JSON.stringify(options));
			// 跳转到第三方登录页面
			// uni.navigateTo({
			// 	url: '/pages/home/home?url=' + encodeURIComponent('https://accounts.saic-hongyan.com/login?service=http://localhost:3001/')
			// });
			return Promise.reject('No token, redirect to login.'); // 阻止本次请求
		} else {
			options.header = options.header || {};
			options.header.token = token;
		}
	
}
// 响应拦截器
$http.afterRequest = function(res) {	
	// 关闭提示
	uni.hideLoading();
}
// 封装弹出框方法
uni.$showMsg = function(title="数据请求失败！",duration=1500){
	uni.showModal({
				title,
				icon:'none',
				duration
			})
}

Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
  ...App,
  store
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif